Systems and methods for animating a view of a composite image

ABSTRACT

Techniques for animating a view of a composite image based on metadata related to the capture of the underlying source images. According to certain implementations, the metadata may include timing or sensor data collected or generated during capture of the component source images. For example, the timing data may indicate an order or sequence in which the source images were captured. Accordingly, the corresponding regions of the composite panoramic image may be panned to in sequence, for example, using the Ken Burns Effect. In another example, sensor data from gyroscopes or accelerometers may be used to simulate the movement of the image capture device used to generate the source images. In another implementation, the source images may be associated with varying focal lengths or zoom levels. Accordingly, certain implementations may vary a level zoom, based on the metadata, while panning between source photos.

BACKGROUND

Panoramic images, or panoramas, can provide a more immersive viewingexperience by providing a wider field of view, or aspect ratio, thanstandard images. Conventional panoramic images can be captured withspecial wide-angle or panoramic lenses. However, panoramic images mayalso be created by assembling or “stitching” together contiguous imagestaken from standard lenses to form a composite image. The proliferationof consumer image capture devices (e.g., digital cameras) and recentdevelopments in image processing software have placed the ability tocreate high-resolution composite panoramic images in the hands of casualphotographers. Moreover, image capture devices and software suitable forcreating such panoramas are becoming common on mobile computing devices(e.g., smartphones and tablets).

Unfortunately, the non-standard aspect ratios associated with panoramicimages often make viewing a full panoramic image impractical on adisplay with a traditional pixel aspect ratio. A full view of apanorama, for example, may make use of only a limited portion ofavailable display area due to “letterboxing.” Moreover, a compositepanorama may have a resolution greatly exceeding the native resolutionof a display device, especially a display of a mobile computing device.Thus, a full view of a panoramic image may prevent finer details of theimage from being visible. Accordingly, a user may instead opt to view alimited first portion of a panorama, and then pan or zoom to revealother portions of the image in turn.

A known technique for gradually revealing an image by panning or zoomingis known as the “Ken Burns Effect.” However, while the Ken Burns Effectmay provide an aesthetically pleasing way to view a panoramic image,conventional implementations are limited in applying the technique to acomposite image without consideration of the source images used tocreate the composite image.

SUMMARY

Some or all of the above deficiencies may be addressed by certainimplementations of the disclosed technology. Certain implementationsinclude techniques for animating a view of a composite image based onmetadata related to the capture of the underlying source images.Accordingly, implementations of the disclosed technology may enrich theviewing experience by mimicking the view of the photographer when thesource images were being captured.

According to an example implementation, a method is provided. The methodmay include, receiving a composite image representing a plurality ofsource images. The composite image may have a plurality of contiguousregions with each respective region from the plurality of contiguousregions corresponding to a respective source image from the plurality ofsource images. The method may further include receiving timing dataassociated with the plurality of source images. The method may yetfurther include outputting, for display, and in sequence, at least aportion of each respective region from the plurality of contiguousregions of the composite image. The sequence may be based on the timingdata associated with the plurality of source images.

According to a further implementation, the timing data may include anindex associated with each source image from the plurality of sourceimages. The sequence may be based on the index associated with eachsource image from the plurality of contiguous images. In a yet furtherimplementation, the index associated with each respective source imagefrom the plurality of source images may be based on a respective time ofcapture associated with the respective source image.

According to another further implementation, the method may includereceiving the plurality of source images. These images may come from animage capture device. The method may further include defining thecomposite image based on contiguities between the plurality of sourceimages.

According to another example implementation, a computer program productis provided. The computer program product may include a non-transitorycomputer readable medium. The computer readable medium may storeinstructions that, when executed by at least one processor in a system,cause the processor to perform a method substantially similar to themethod described hereinabove.

According to yet another example implementation, a system is provided.The system may include an image capture device coupled to a computingdevice, and a memory operatively coupled to the computing device andconfigured for storing data and instructions that may be executed by theprocessor. When executed, the system may be caused to perform a methodsubstantially similar to the method described hereinabove.

Other implementations, features, and aspects of the disclosed technologyare described in detail herein and are considered a part of the claimeddisclosed technology. Other implementations, features, and aspects canbe understood with reference to the following detailed description,accompanying drawings, and claims.

BRIEF DESCRIPTION OF THE FIGURES

Reference will now be made to the accompanying figures and flowdiagrams, which are not necessarily drawn to scale, and wherein:

FIG. 1 depicts a block diagram of illustrative computing devicearchitecture 100, according to an example implementation.

FIG. 2 depicts an illustration of a computing device 200, according toan example implementation.

FIG. 3A depicts an illustration of four source images 301A-D havingcontiguous image content.

FIG. 3B depicts an illustration of an assembly 300 of the four sourceimages 301A-D into a composite image 310.

FIG. 3C depicts an illustration of regions 311A-D of the composite image310 corresponding to the four source images 301A-D, respectively.

FIG. 4 depicts an illustration of three source images 401A-C associatedwith various focal lengths.

FIG. 5 is a flow diagram of a method 500 for animating a view of acomposite image based on metadata related to the capture of theunderlying source images.

FIG. 6 is a flow diagram of another method 600 for animating a view of acomposite image based on metadata related to the capture of theunderlying source images.

DETAILED DESCRIPTION

Implementations of the disclosed technology include techniques foranimating a view of a composite image based on metadata related to thecapture of the underlying source images. According to certainimplementations, the metadata may include timing or sensor data recordedor generated during capture of the source images. In an exampleembodiment, the timing data may indicate an order or sequence in whichthe source images were captured, enabling corresponding regions of thecomposite panoramic image to be panned or zoomed to in sequence, forexample, using the Ken Burns Effect. In another example, sensor datafrom gyroscopes or accelerometers may be used to tailor the panning orzooming to further mimic the operation of the image capture deviceduring capture of the source images.

Some implementations of the disclosed technology will be described morefully hereinafter with reference to the accompanying drawings. Thedisclosed technology may, however, be embodied in many different formsand should not be construed as limited to the implementations set forthherein.

In the following description, numerous specific details are set forth.However, it is to be understood that implementations of the disclosedtechnology may be practiced without these specific details. In otherinstances, well-known methods, structures, and techniques have not beenshown in detail in order not to obscure an understanding of thisdescription. References to “one implementation,” “an implementation,”“example implementation,” “some implementations,” “certainimplementations,” “various implementations,” etc., indicate that theimplementation(s) of the disclosed technology so described may include aparticular feature, structure, or characteristic, but not everyimplementation necessarily includes the particular feature, structure,or characteristic. Further, repeated use of the phrase “in oneimplementation” does not necessarily refer to the same implementation,although it may.

Throughout the specification and the claims, the following terms take atleast the meanings explicitly associated herein, unless the contextclearly dictates otherwise. The term “or” is intended to mean aninclusive “or.” Further, the terms “a,” “an,” and “the” are intended tomean one or more unless specified otherwise or clear from the context tobe directed to a singular form.

Unless otherwise specified, the use of the ordinal adjectives “first,”“second,” “third,” etc., to describe a common object, merely indicatethat different instances of like objects are being referred to, and arenot intended to imply that the objects so described must be in a givensequence, either temporally, spatially, in ranking, or in any othermanner.

In some instances, a computing device may be referred to as a mobiledevice, mobile computing device, a mobile station (MS), terminal,cellular phone, cellular handset, personal digital assistant (PDA),smartphone, wireless phone, organizer, handheld computer, desktopcomputer, laptop computer, tablet computer, set-top box, television,appliance, game device, medical device, display device, or some otherlike terminology. In other instances, a computing device may be aprocessor, controller, or a central processing unit (CPU). In yet otherinstances, a computing device may be a set of hardware components.

A presence-sensitive input device as discussed herein, may be a devicethat accepts input by the proximity of a finger, a stylus, or an objectnear the device. A presence-sensitive input device may also be a radioreceiver (for example, a WiFi receiver) and processor which is able toinfer proximity changes via measurements of signal strength, signalfrequency shifts, signal to noise ratio, data error rates, and otherchanges in signal characteristics. A presence-sensitive input device mayalso detect changes in an electric, magnetic, or gravity field.

A presence-sensitive input device may be combined with a display toprovide a presence-sensitive display. For example, a user may provide aninput to a computing device by touching the surface of apresence-sensitive display using a finger. In another exampleimplementation, a user may provide input to a computing device bygesturing without physically touching any object. For example, a gesturemay be received via a video camera or depth camera.

In some instances, a presence-sensitive display may have two mainattributes. First, it may enable a user to interact directly with whatis displayed, rather than indirectly via a pointer controlled by a mouseor touchpad. Secondly, it may allow a user to interact without requiringany intermediate device that would need to be held in the hand. Suchdisplays may be attached to computers, or to networks as terminals. Suchdisplays may also play a prominent role in the design of digitalappliances such as a personal digital assistant (PDA), satellitenavigation devices, mobile phones, and video games. Further, suchdisplays may include a capture device and a display.

Various aspects described herein may be implemented using standardprogramming or engineering techniques to produce software, firmware,hardware, or any combination thereof to control a computing device toimplement the disclosed subject matter. A computer-readable medium mayinclude, for example: a magnetic storage device such as a hard disk, afloppy disk or a magnetic strip; an optical storage device such as acompact disk (CD) or digital versatile disk (DVD); a smart card; and aflash memory device such as a card, stick or key drive, or embeddedcomponent. Additionally, it should be appreciated that a carrier wavemay be employed to carry computer-readable electronic data includingthose used in transmitting and receiving electronic data such aselectronic mail (e-mail) or in accessing a computer network such as theInternet or a local area network (LAN). Of course, a person of ordinaryskill in the art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

Various systems, methods, and computer-readable mediums may be utilizedfor animating a view of a composite image based on metadata related tothe capture of the underlying source images, and will now be describedwith reference to the accompanying figures.

FIG. 1 depicts a block diagram of illustrative computing devicearchitecture 100, according to an example implementation. Certainaspects of FIG. 1 may be embodied in a computing device 200 (forexample, a mobile computing device as shown in FIG. 2). As desired,embodiments of the disclosed technology may include a computing devicewith more or less of the components illustrated in FIG. 1. It will beunderstood that the computing device architecture 100 is provided forexample purposes only and does not limit the scope of the variousembodiments of the present disclosed systems, methods, andcomputer-readable mediums.

The computing device architecture 100 of FIG. 1 includes a CPU 102,where computer instructions are processed; a display interface 106 thatacts as a communication interface and provides functions for renderingvideo, graphics, images, and texts on the display. According to certainsome embodiments of the disclosed technology, the display interface 106may be directly connected to a local display, such as a touch-screendisplay associated with a mobile computing device. In another exampleembodiment, the display interface 106 may be configured for providingdata, images, and other information for an external/remote display thatis not necessarily physically connected to the mobile computing device.For example, a desktop monitor may be utilized for mirroring graphicsand other information that is presented on a mobile computing device.According to certain some embodiments, the display interface 106 maywirelessly communicate, for example, via a Wi-Fi channel or otheravailable network connection interface 112 to the external/remotedisplay.

In an example embodiment, the network connection interface 112 may beconfigured as a communication interface and may provide functions forrendering video, graphics, images, text, other information, or anycombination thereof on the display. In one example, a communicationinterface may include a serial port, a parallel port, a general purposeinput and output (GPIO) port, a game port, a universal serial bus (USB),a micro-USB port, a high definition multimedia (HDMI) port, a videoport, an audio port, a Bluetooth port, a near-field communication (NFC)port, another like communication interface, or any combination thereof.

The computing device architecture 100 may include a keyboard interface104 that provides a communication interface to a keyboard. In oneexample embodiment, the computing device architecture 100 may include apresence-sensitive display interface 107 for connecting to apresence-sensitive display. According to certain some embodiments of thedisclosed technology, the presence-sensitive display interface 107 mayprovide a communication interface to various devices such as a pointingdevice, a touch screen, a depth camera, etc. which may or may not beassociated with a display.

The computing device architecture 100 may be configured to use an inputdevice via one or more of input/output interfaces (for example, thekeyboard interface 104, the display interface 106, the presencesensitive display interface 107, network connection interface 112,camera interface 114, sound interface 116, etc.) to allow a user tocapture information into the computing device architecture 100. Theinput device may include a mouse, a trackball, a directional pad, atrack pad, a touch-verified track pad, a presence-sensitive track pad, apresence-sensitive display, a scroll wheel, a digital camera, a digitalvideo camera, a web camera, a microphone, a sensor, a smartcard, and thelike. Additionally, the input device may be integrated with thecomputing device architecture 100 or may be a separate device. Forexample, the input device may be an accelerometer, a magnetometer, adigital camera, a microphone, and an optical sensor.

Example embodiments of the computing device architecture 100 may includean antenna interface 110 that provides a communication interface to anantenna; a network connection interface 112 that provides acommunication interface to a network. According to certain embodiments,a camera interface 114 is provided that acts as a communicationinterface and provides functions for capturing digital images from acamera. According to certain embodiments, a sound interface 116 isprovided as a communication interface for converting sound intoelectrical signals using a microphone and for converting electricalsignals into sound using a speaker. According to example embodiments, arandom access memory (RAM) 118 is provided, where computer instructionsand data may be stored in a volatile memory device for processing by theCPU 102.

According to an example embodiment, the computing device architecture100 includes a read-only memory (ROM) 120 where invariant low-levelsystem code or data for basic system functions such as basic input andoutput (I/O), startup, or reception of keystrokes from a keyboard arestored in a non-volatile memory device. According to an exampleembodiment, the computing device architecture 100 includes a storagemedium 122 or other suitable type of memory (e.g., RAM, ROM,programmable read-only memory (PROM), erasable programmable read-onlymemory (EPROM), electrically erasable programmable read-only memory(EEPROM), magnetic disks, optical disks, floppy disks, hard disks,removable cartridges, flash drives), where the files include anoperating system 124, application programs 126 (including, for example,a web browser application, a widget or gadget engine, and or otherapplications, as necessary) and data files 128 are stored. According toan example embodiment, the computing device architecture 100 includes apower source 130 that provides an appropriate alternating current (AC)or direct current (DC) to power components. According to an exampleembodiment, the computing device architecture 100 includes a telephonysubsystem 132 that allows the device 100 to transmit and receive soundover a telephone network. The constituent devices and the CPU 102communicate with each other over a bus 134.

According to an example embodiment, the CPU 102 has appropriatestructure to be a computer processor. In one arrangement, the CPU 102may include more than one processing unit. The RAM 118 interfaces withthe computer bus 134 to provide quick RAM storage to the CPU 102 duringthe execution of software programs such as the operating systemapplication programs, and device drivers. More specifically, the CPU 102loads computer-executable process steps from the storage medium 122 orother media into a field of the RAM 118 in order to execute softwareprograms. Data may be stored in the RAM 118, where the data may beaccessed by the computer CPU 102 during execution. In one exampleconfiguration, the device architecture 100 includes at least 125 MB ofRAM, and 256 MB of flash memory.

The storage medium 122 itself may include a number of physical driveunits, such as a redundant array of independent disks (RAID), a floppydisk drive, a flash memory, a USB flash drive, an external hard diskdrive, thumb drive, pen drive, key drive, a High-Density DigitalVersatile Disc (HD-DVD) optical disc drive, an internal hard disk drive,a Blu-Ray optical disc drive, or a Holographic Digital Data Storage(HDDS) optical disc drive, an external mini-dual in-line memory module(DIMM) synchronous dynamic random access memory (SDRAM), or an externalmicro-DIMM SDRAM. Such computer readable storage media allow a computingdevice to access computer-executable process steps, application programsand the like, stored on removable and non-removable memory media, tooff-load data from the device or to upload data onto the device. Acomputer program product, such as one utilizing a communication systemmay be tangibly embodied in storage medium 122, which may comprise amachine-readable storage medium.

According to one example embodiment, the term computing device, as usedherein, may be a CPU, or conceptualized as a CPU (for example, the CPU102 of FIG. 1). In this example embodiment, the computing device may becoupled, connected, and/or in communication with one or more peripheraldevices, such as display. In another example embodiment, the termcomputing device, as used herein, may refer to a mobile computing device200, such as a smartphone or tablet computer. In this exampleembodiment, the computing device may output content to its local displayand/or speaker(s). In another example embodiment, the computing devicemay output content to an external display device (e.g., over Wi-Fi) suchas a TV or an external computing system.

In some embodiments of the disclosed technology, the computing device200 may include any number of hardware and/or software applications thatare executed to facilitate any of the operations. In some embodiments,one or more I/O interfaces may facilitate communication between thecomputing device and one or more input/output devices. For example, auniversal serial bus port, a serial port, a disk drive, a CD-ROM drive,and/or one or more user interface devices, such as a display, keyboard,keypad, mouse, control panel, touch screen display, microphone, etc.,may facilitate user interaction with the computing device. The one ormore I/O interfaces may be utilized to receive or collect data and/oruser instructions from a wide variety of input devices. Received datamay be processed by one or more computer processors as desired invarious embodiments of the disclosed technology and/or stored in one ormore memory devices.

One or more network interfaces may facilitate connection of thecomputing device inputs and outputs to one or more suitable networksand/or connections; for example, the connections that facilitatecommunication with any number of sensors associated with the system. Theone or more network interfaces may further facilitate connection to oneor more suitable networks; for example, a local area network, a widearea network, the Internet, a cellular network, a radio frequencynetwork, a Bluetooth enabled network, a Wi-Fi enabled network, asatellite-based network any wired network, any wireless network, etc.,for communication with external devices and/or systems.

FIG. 2 depicts an illustration of a computing device 200, according toan example implementation. As shown in FIG. 2, the computing device maybe a mobile computing device, for example, a smartphone or a tablet. Themobile computing device may have a built-in or integrated display 250for presenting a graphical user interface (GUI) 290 for viewing imagesor other media content. The display may be combined with a presencesensitive input device to form a touch-sensitive or presence-sensitivedisplay for receiving user input from a stylus, finger, or other meansof gesture input. In some implementations, the mobile computing devicemay also include or be associated with a sound producing device 280,such as a speaker, piezoelectric buzzer, or the like.

The mobile computing device 200 may be in communication with an imagecapture device 270 for capturing or recording content. As shown in FIG.2, the computing device may include a built-in or internal image capturedevice, for example, a camera or CCD. The image capture device mayinclude or be associated with an illumination device 275, for example, aflash device or IR beacon. In another example implementation, the imagecapture device may be external to the computing device and incommunication with the computing device, for example, through a directconnection, or wireless coupling.

In certain implementations, the mobile computing device 200 may includeone or more antennas or radios for wireless communication. These mayinclude antennas for receiving GPS, Wi-Fi, or other radiocommunications. In addition, the mobile computing device may include oneor more sensors for detecting, for example and without limitation,temperature, pressure, altitude, magnetic heading, etc.

Composite images based on multiple source images are often too large toeffectively display in their entirety onscreen, especially on computingdevices 200 with relatively smaller displays 250, such as smartphonesand tablets. As a result, techniques have been developed toincrementally display the content of a composite image. One suchtechnique is the “Ken Burns Effect.”

The Ken Burns Effect is known in the art as a type of panning or zoomingeffect used to animate a view of still images in a movie. In filmediting, the technique may be implemented using a rostrum camera. Inmodern applications, however, the Ken Burns Effect is typically added bysoftware.

Applying the Ken Burns Effect generally involves displaying a view of afirst limited portion an image, and automatically panning or zooming theview across the image in a single direction to reveal graduallyadditional portions of the image. Conventional software allows a user toindicate a direction of the panning or an amount of zoom, for example,by selecting an initial portion of the image and a final portion of theimage to display. Some software further allows a user to select or chainmultiple image portion transitions together to emphasize variousportions of a composite image in sequence.

In contrast, implementations of the present disclosed technology includetechniques for animating a view of a composite image based on metadatarelated to the capture of the underlying source images. By leveragingnon-image data recorded or generated when the source images werecaptured, some implementations may provide a more immersive viewingexperience by automatically animating a view of the composite imagerepresenting the source images in a manner that mimics the view of theimage capture device while the source images were being captured—ineffect, placing the viewer in the shoes of the photographer when thesource images were taken.

According to certain implementations, a composite image may be createdor defined based on a plurality of source images. For example, acomposite panoramic image may incorporate image content from multiplesource photos. In another example, a composite may incorporate imagecontent from frames of a video feed. In some implementations, the sourceimages may be combined, or “stitched” together, based on a determinationof contiguous image content, herein referred to as “contiguity” or“overlap,” between the images. Techniques for generating compositeimages from source images are known in the art and not discussed atlength herein.

According to certain implementations, a source image may be associatedwith metadata related to the capture of the source image. In someimplementations, the metadata may be recorded or generated duringcapture of the source image. For example, the metadata may includetiming data associated with the capture of a photo. In someimplementations, the timing data may correspond to an absolute date ortime. In another implementation, the timing data may include anindication of a position in time relative to an event or the capture ofother source images. For example, the timing data may include, or beused to determine, a sequence or chronological order associated with agroup of source images. The ordinal position of a source image within asequence of source images may be referred to herein as an “index”associated with the source image.

According to certain implementations, the sequence of image portiontransitions in a panning or zooming effect may be based on timing dataassociated with the source images underlying a composite image. FIG. 3Adepicts an illustration of four source images 301A-D having contiguousimage content. In this example, the chronological order of the captureof the images is 301A-301B-301C-301D.

The source images may be used to create a composite image 310. FIG. 3Bdepicts an illustration of an assembly 300 of the four source images301A-D into a composite image 310. As shown in FIG. 3B, although thechronological order associated with the source images corresponds toA-B-C-D, image 301D may be determined to share a contiguity, or overlap,with source image 301A. Accordingly, as shown in FIG. 3C, the portion311D of composite image 310 corresponding to source image 301D isrendered adjacent to the portion 311A of the composite imagecorresponding to source image 301A, instead of adjacent to portion 311C.

According to certain implementations, a panning or zooming effect, suchas the Ken Burns Effect, as applied to the composite image 310, mayprogress from a view of a portion 311A of the composite imagecorresponding to source image 301A to views of the portions 311B-D ofthe composite image corresponding to the other source images 301B-D.Thus, in an example implementation, the panning motion may mimic themovement of the image capture device while the source images 301A-D werebeing captured. In this example, because source image 301D shares acontiguity with source image 301A, but was captured after interveningsource images 301B-C, the panning movement may change directions, basedon the timing data, to place the corresponding portions of the compositeimage 310 in view according to chronological order.

According to certain implementations, various other characteristics ofpanning or zooming between portions of a composite image may be based onmetadata generated during capture of the underlying source images. Forexample, a speed, acceleration, or direction of the panning movement maybe based on sensor data recorded or generated during capture of theunderlying source images. In some implementations, sensor data collectedmay be indicative of transitioning an image capture device betweenpositions associated with capturing the plurality of source images. Thisdata may be collected, by position or orientation sensors, such asaccelerometers or gyroscopes; or by other means of determining positionor orientation known in the art. Accordingly, when the correspondingcomposite image is viewed using a Ken Burns Effect or the like, thepanning between various portions of the composite image can mimic themovement of the image capture device between positions associated withthe capture of the source images. For example, if a user captured image301B and then 301C in quick succession, but paused before capturing301D, the panning motion could linger at the portion 311C of thecomposite image 310 corresponding to source image 301C before moving tothe next portion.

According to certain implementations, various characteristics of zoomingbetween portions of a composite image may be based on metadata generatedduring capture of the underlying source images. For example, the sourceimages may be associated with varying levels of zoom, or focal lengths,as shown in FIG. 4. As a result, the size of the portion of a compositeimage corresponding to each source image may vary. Thus, zooming, orchanging the dimensions of the viewing window, may be appropriate whenprogressing, for example, from a view of a portion of a composite imagecorresponding to source image 401A to a view of portion of the sourceimage corresponding to source image 401B. In some implementations, themetadata may include an indication of a focal length associated with asource image or group of source images. The level of zoom whileprogressing between views of portions of the composite image may beautomatically adjusted based this metadata. In another implementation,transitional zooming data between the capture of source photos may berecorded. The transitional zooming data may be used to mimic how a levelof zoom was adjusted at an image capture device during capture of thesource images.

According to certain implementations, the metadata associated with asource image may be stored in a same data file as the source image. Forexample, a time signature or index may be stored as metadata in an imagefile comprising or representing the source image. In another example,sensor data may be stored as metadata in the image file. In someimplementations, a plurality of source images used to create a compositeimage, and sensor data indicative of transitioning an image capturedevice between positions associated with the capturing of source images,may be stored in a same file, or collection of related files. In yetanother implementation, instructions based on the timing or sensor dataand for implementing the panning or zooming effect, may be stored in asame file, collection of files, or in a database with one or more of thesource images.

FIG. 5 is a flow diagram of a method 500 for animating a view of acomposite image based on metadata related to the capture of theunderlying source images. As shown in FIG. 5, the method 500 starts inblock 502, and, according to an example implementation, includesreceiving, at a computing device, a composite image representing aplurality of contiguous source images, the composite image having aplurality of contiguous regions, each respective region from theplurality of contiguous regions corresponding to a respective sourceimage from the plurality of contiguous source images. In block 504, themethod 500 includes receiving, at the computing device, timing dataassociated with the plurality of contiguous source images. In block 506,the method 500 includes outputting, by the computing device, fordisplay, and in sequence, at least a portion of each respective regionfrom the plurality of contiguous regions of the composite image, thesequence based on the timing data associated with the plurality ofcontiguous source images.

FIG. 6 is a flow diagram of another method 600 for animating a view of acomposite image based on metadata related to the capture of theunderlying source images. As shown in FIG. 6, the method 600 starts inblock 602, and, according to an example implementation, includesreceiving, by the computing device, from the image capture device, aplurality of contiguous source images. In block 604, the method 600includes defining, by the computing device, based on contiguitiesbetween the plurality of contiguous source images, a composite imagerepresenting the plurality of contiguous source images, the compositeimage having a plurality of contiguous regions, each respective regionfrom the plurality of contiguous regions corresponding to a respectivesource image from the plurality of contiguous source images.

In block 606, the method 600 includes receiving, at the computingdevice, timing data associated with the plurality of contiguous sourceimages. In block 608, the method 600 includes outputting, by thecomputing device, for display, and in sequence, at least a portion ofeach respective region from the plurality of contiguous regions of thecomposite image, the sequence based on the timing data associated withthe plurality of contiguous source images.

It will be understood that the various steps shown in FIGS. 5 and 6 areillustrative only, and that steps may be removed, other steps may beused, or the order of steps may be modified.

Certain implementations of the disclosed technology are described abovewith reference to block and flow diagrams of systems and methods and/orcomputer program products according to example implementations of thedisclosed technology. It will be understood that one or more blocks ofthe block diagrams and flow diagrams, and combinations of blocks in theblock diagrams and flow diagrams, respectively, may be implemented bycomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, or may not necessarily need to beperformed at all, according to some implementations of the disclosedtechnology.

These computer-executable program instructions may be loaded onto ageneral-purpose computer, a special-purpose computer, a processor, orother programmable data processing apparatus to produce a particularmachine, such that the instructions that execute on the computer,processor, or other programmable data processing apparatus create meansfor implementing one or more functions specified in the flow diagramblock or blocks. These computer program instructions may also be storedin a computer-readable memory that may direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement one or more functions specified in the flow diagram blockor blocks. As an example, implementations of the disclosed technologymay provide for a computer program product, comprising a computer-usablemedium having a computer-readable program code or program instructionsembodied therein, said computer-readable program code adapted to beexecuted to implement one or more functions specified in the flowdiagram block or blocks. The computer program instructions may also beloaded onto a computer or other programmable data processing apparatusto cause a series of operational elements or steps to be performed onthe computer or other programmable apparatus to produce acomputer-implemented process such that the instructions that execute onthe computer or other programmable apparatus provide elements or stepsfor implementing the functions specified in the flow diagram block orblocks.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specified functionsand program instruction means for performing the specified functions. Itwill also be understood that each block of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and flowdiagrams, may be implemented by special-purpose, hardware-based computersystems that perform the specified functions, elements or steps, orcombinations of special-purpose hardware and computer instructions.

While certain implementations of the disclosed technology have beendescribed in connection with what is presently considered to be the mostpractical and various implementations, it is to be understood that thedisclosed technology is not to be limited to the disclosedimplementations, but on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the scope ofthe appended claims. Although specific terms are employed herein, theyare used in a generic and descriptive sense only and not for purposes oflimitation.

This written description uses examples to disclose certainimplementations of the disclosed technology, including the best mode,and also to enable any person skilled in the art to practice certainimplementations of the disclosed technology, including making and usingany devices or systems and performing any incorporated methods. Thepatentable scope of certain implementations of the disclosed technologyis defined in the claims, and may include other examples that occur tothose skilled in the art. Such other examples are intended to be withinthe scope of the claims if they have structural elements that do notdiffer from the literal language of the claims, or if they includeequivalent structural elements with insubstantial differences from theliteral language of the claims.

We claim:
 1. A method, comprising: receiving, at a computing device, acomposite image representing a plurality of source images, the compositeimage having a plurality of contiguous regions, each respective regionfrom the plurality of contiguous regions corresponding to a respectivesource image from the plurality of source images; receiving, at thecomputing device, timing data associated with the plurality of sourceimages; and outputting, by the computing device, for display, and in apredefined sequence, at least a portion of each respective region fromthe plurality of contiguous regions of the composite image, thepredefined sequence based on the timing data associated with theplurality of source images.
 2. The method of claim 1, wherein the timingdata comprises, for each respective source image from the plurality ofsource images, a respective index from a plurality of indexes, whereinthe predefined sequence is based on the plurality of indexes.
 3. Themethod of claim 2, wherein each respective index from the plurality ofindexes source image is based on a respective time of capture associatedwith the respective source image from the plurality of source imagesthat is associated with the respective index.
 4. The method of claim 1,wherein the composite image and the timing data are stored in a samedata file.
 5. The method of claim 1, wherein the outputting of the atleast a portion of each respective region from the plurality ofcontiguous regions of the composite image comprises: transitioninggradually from outputting a first region, from the plurality ofcontiguous regions of the composite image and corresponding to a firstindex in the predefined sequence, to outputting a second region, fromthe plurality of contiguous regions of the composite image correspondingto a next index in the predefined sequence, such that display of thefirst region pans to display the second region.
 6. The method of claim5, further comprising: receiving sensor data indicative of transitioningan image capture device between positions associated with capturing theplurality of source images, the transitioning, from outputting the firstregion from the plurality of contiguous regions of the composite image,to outputting the second region from the plurality of contiguous regionsof the composite images, being based on the sensor data.
 7. The methodof claim 6, wherein the plurality of source images and the sensor dataare stored in a same data file.
 8. The method of claim 1, wherein: afirst source image, from the plurality of source images andcorresponding to a first region from the plurality of contiguousregions, and a second source image, from the plurality of source imagesand corresponding to a second region from the plurality of contiguousregions, are associated with different focal lengths, and the outputtingof the at least a portion of each respective region from the pluralityof contiguous regions of the composite image comprises zooming from thefirst region, from the plurality of contiguous regions of the compositeimage and corresponding to a first position in the predefined sequence,to the second region from the plurality of contiguous regions of thecomposite image and corresponding to a next index in the predefinedsequence, the method further comprising receiving focal length dataassociated with the plurality of source images.
 9. The method of claim1, wherein the plurality of source images are captured by an imagecapture device, the method further comprising: defining, based oncontiguities between the plurality of source images, the compositeimage.
 10. A computer program product comprising a non-transitorycomputer readable medium that stores instructions that, when executed bya computing device, cause the computing device to perform a methodcomprising: receiving, at a computing device, a composite imagerepresenting a plurality of source images, the composite image having aplurality of contiguous regions, each respective region from theplurality of contiguous regions corresponding to a respective sourceimage from the plurality of source images; receiving, at the computingdevice, timing data associated with the plurality of source images, thetiming data comprising, for each respective source image from theplurality of source images, an indication of a respective time ofcapture associated with the respective source image; and outputting, bythe computing device, for display, and in a predefined sequence, atleast a portion of each respective region from the plurality ofcontiguous regions of the composite image, the predefined sequence basedon the timing data associated with the plurality of source images. 11.The computer program product of claim 10, wherein the composite imageand the timing data are stored in a same location.
 12. The computerprogram product of claim 10, wherein the outputting of the at least aportion of each respective region from the plurality of contiguousregions of the composite image comprises: transitioning gradually fromoutputting a first region, from the plurality of contiguous regions ofthe composite image and corresponding to a first index in the predefinedsequence, to outputting a second region, from the plurality ofcontiguous regions of the composite image corresponding to a next indexin the predefined sequence, such that display of the first region pansto display of the second region.
 13. The computer program product ofclaim 12, the method further comprising: receiving sensor dataindicative of transitioning an image capture device between positionsassociated with capturing the plurality of source images, thetransitioning, from outputting the first region from the plurality ofcontiguous regions of the composite image, to outputting the secondregion from the plurality of contiguous regions of the composite images,being based on the sensor data.
 14. The computer program product ofclaim 10, wherein the plurality of source images are captured by animage capture device, the method further comprising: defining, based oncontiguities between the plurality of source images, the compositeimage.
 15. A system comprising: an image capture device operativelycoupled to a computing device; at least one memory operatively coupledto the computing device and configured for storing data and instructionsthat, when executed by the computing device, cause the computing deviceto perform a method comprising: receiving, by the computing device, aplurality of source images captured by the image capture device;defining, by the computing device, based on contiguities between theplurality of source images, a composite image representing the pluralityof source images, the composite image having a plurality of contiguousregions, each respective region from the plurality of contiguous regionscorresponding to a respective source image from the plurality of sourceimages; receiving, at the computing device, timing data associated withthe plurality of source images; and outputting, by the computing device,for display, and in a predefined sequence, at least a portion of eachrespective region from the plurality of contiguous regions of thecomposite image, the predefined sequence based on the timing dataassociated with the plurality of source images.
 16. The system of claim15, wherein the timing data comprises, for each respective source imagefrom the plurality of source images, a respective index from a pluralityof indexes, wherein the predefined sequence is based on the plurality ofindexes.
 17. The system of claim 16, wherein each respective index fromthe plurality of indexes source image is based on a respective time ofcapture associated with the respective source image from the pluralityof source images that is associated with the respective index.
 18. Thesystem of claim 15, wherein the outputting of the at least a portion ofeach respective region from the plurality of contiguous regions of thecomposite image comprises: transitioning gradually from outputting afirst region, from the plurality of contiguous regions of the compositeimage and corresponding to a first position in the predefined sequence,to outputting a second region, from the plurality of contiguous regionsof the composite image corresponding to a next position in thepredefined sequence, such that display of the first region pans todisplay of the second region.
 19. The system of claim 18, the methodfurther comprising: receiving sensor data indicative of transitioning animage capture device between positions associated with capturing theplurality of source images, wherein an acceleration or speed of thetransitioning, from outputting the first region from the plurality ofcontiguous regions of the composite image, to outputting the secondregion from the plurality of contiguous regions of the composite images,being based on the sensor data.
 20. The system of claim 15, wherein: afirst source image, from the plurality of contiguous sources images andcorresponding to a first region from the plurality of contiguousregions, and a second source image, from the plurality of source imagesand corresponding to a second region from the plurality of contiguousregions, are associated with different focal lengths, and the outputtingof the at least a portion of each respective region from the pluralityof contiguous regions of the composite image comprises transitioninggradually from outputting the first region, from the plurality ofcontiguous regions of the composite image and corresponding to a firstposition in the predefined sequence, to outputting the second regionfrom the plurality of contiguous regions of the composite image andcorresponding to a next index in the predefined sequence, such thatdisplay of the first region zooms to display of the second region; themethod further comprising receiving focal length data associated withthe plurality of source images.